home *** CD-ROM | disk | FTP | other *** search
- // Chap21_3.cpp
- class USDollar
- {
- public:
- USDollar(double value = 0.0);
- //the following function acts as a cast operator
- operator double()
- {
- return dollars + cents / 100.0;
- }
- protected:
- unsigned int dollars;
- unsigned int cents;
- };
- USDollar::USDollar(double value)
- {
- dollars = (int)value;
- cents = (int)((value - dollars) * 100 + 0.5);
- }
- int main()
- {
- USDollar d1(2.0), d2(1.5), d3;
- //invoke cast operator explicitly...
- d3 = USDollar((double)d1 + (double)d2);
- //...or implicitly
- d3 = d1 + d2;
- return 0;
- }
-